package com.sxf.common.exceptions;


import com.sxf.common.enums.SystemCommonCode;
import org.apache.http.HttpStatus;

/**
 * 基础运行时异常类，无需显性捕获处理.
 *
 * @author Author
 * @version 1.0
 * @title BaseRuntimeException
 * @description 基础运行时异常类.
 * @date 2016年7月19日
 */
public abstract class BaseRuntimeException extends RuntimeException {

    private static final long serialVersionUID = 7336512712126834854L;

    public BaseRuntimeException() {
    }

    public BaseRuntimeException(String errMsg) {
        super(errMsg);
    }

    public BaseRuntimeException(Throwable cause) {
        super(cause);
    }

    public BaseRuntimeException(String errMsg, Throwable cause) {
        super(errMsg, cause);
    }

    /**
     * 异常对应的系统错误代码，默认为1000，表示内部错误
     *
     * @return 每个子类都可以覆盖
     */
    public int getErrorCode() {
        return SystemCommonCode.INTERNAL_ERR;
    }

    /**
     * 获取异常映射的http status code，
     * 默认为500，不过子类可以进行覆盖。
     *
     * @return 异常映射的http status code
     */
    public int getHttpStatus() {
        return HttpStatus.SC_INTERNAL_SERVER_ERROR;
    }
}
